package repo

import "github.com/tmc/langchaingo/prompts"

var (
	qaSystemPromptTpl = `你是一个专业的知识库问答助手，请根据提供的知识库内容回答问题。
	请严格遵守以下规则：
	1. 仅使用提供的上下文内容回答，保持答案客观准确
	2. 回答必须使用与问题相同的语言（中文）
	3. 答案包含多个要点时使用分点形式
	4. 上下文内容矛盾时需分别说明不同观点及来源
	5. 找不到答案时返回"根据当前知识库，暂时无法回答该问题"
	6. 在答案末尾用[来源x]格式标注引用来源
	7. 不要添加任何编造内容
	`
	qaHumanPromptTpl = `知识库内容：
{{.context}}
问题：{{.question}}`
)

var (
	DefaultQASysPrompt   = prompts.NewSystemMessagePromptTemplate(qaSystemPromptTpl, []string{})
	DefaultQAHumanPrompt = prompts.NewHumanMessagePromptTemplate(
		qaHumanPromptTpl,
		[]string{"context", "question"},
	)

	DefaultQAPrompt = prompts.NewChatPromptTemplate([]prompts.MessageFormatter{DefaultQASysPrompt, DefaultQAHumanPrompt})
)
